package cn.tedu.csmall.product.service;

import cn.tedu.csmall.product.pojo.dto.BrandAddNewDTO;
import cn.tedu.csmall.product.pojo.vo.BrandListItemVO;
import cn.tedu.csmall.product.pojo.vo.BrandStandardVO;

import java.util.List;

/**
 * @Description: 处理品牌数据的业务层接口
 * @Author: sweeterjava@163.com
 * @Date: 2022/10/26
 * @Time: 11:28
 */
public interface IBrandService {
    /**
     * 添加新的品牌
     *
     * @param brandAddNewDTO
     */
    void addNew(BrandAddNewDTO brandAddNewDTO);

    /**
     * 查询所有品牌列表
     * @return
     */
    List<BrandListItemVO> list();

    /**
     * 启用品牌
     *
     * @param id 品牌id
     */
    void setEnable(Long id);

    /**
     * 禁用品牌
     *
     * @param id 品牌id
     */
    void setDisable(Long id);

    /**
     * 根据id获取品牌详情
     *
     * @param id 品牌id
     * @return 返回与id匹配的品牌数据详情，如果没有匹配的数据，则返回null
     */
    BrandStandardVO getStandardById(Long id);

    /**
     * 重新缓存
     */
    void rebuildCache();
}
